A network storage server is a processing system adapted to store and retrieve data on behalf of one or more client processing systems (“clients”) in response to external input/output (I/O) requests received from clients. A storage server can provide clients with a file-level access to data stored in a set of mass storage devices, such as magnetic or optical storage disks or tapes. Alternatively, a storage server can provide clients with a block-level access to stored data, rather than file-level access or with both file-level access and block-level access.
Data storage space maintained by a storage server can be organized as one or more storage “volumes” comprising physical storage disks (or other mass storage devices), defining an overall logical arrangement of storage space. The disks within a volume/file system can be organized as one or more groups of Redundant Array of Independent (or Inexpensive) Disks (RAID).
A client's local file system or a part of its local file system (e.g., a directory may be mapped to a volume of the storage server. An access request (e.g., read, write, etc.) directed to the local file system mapped to the volume may be forwarded by the client to the storage server. Application data sent to the storage server from the client may be divided up into fixed-size physical data blocks stored on disks within the mapped volume. To facilitate access to the data blocks, the storage server implements a file system that logically organizes information as a hierarchical structure of named directories and files on the disks.
Some known file systems, including the Write Anywhere File Layout (WAFL®) file system, provided by Network Appliance, Inc., of Sunnyvale, Calif., provide capability for creating “snapshots” of a volume. A snapshot is a persistent point-in-time (PPT) image of the volume that enables quick recovery of data in the event the data has been corrupted, lost, or altered. The terms PPT image and “snapshot” shall be used interchangeably throughout this description. “Snapshot” is used in this document without derogation of Network Appliance, Inc.'s trademark rights.
Typically, creation of snapshots can be controlled from a client-side software tool. According to a known technique, in order to ensure that the created snapshot is a consistent PPT image of the volume, the client-side software tool “freezes” the client's local file system while the snapshot is being created, i.e., prevents any client application from making changes (e.g., writing data, deleting data, etc.) to the file system, and therefore prevents the client application from making changes to the volume. A snapshot is considered as a consistent PPT image of a volume if, while the snapshot is created, the volume is not changed. However, while a snapshot is being created, an application can thaw the file system (i.e., unfreeze the file system to allow changing the file system), making some changes to the volume, and freezing the file system again before the creation of snapshot is finished. If the above scenario occurs, the created snapshot is not a consistent PPT image of the volume. That fact may not be readily apparent to any user. Thus, what is needed is a technique to automatically warn a user (e.g., a network storage system administrator) when a created snapshot is inconsistent.